package com.xbts.system.service;

import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xbts.system.domain.SeiMaterial;
import com.xbts.system.domain.SeiTemplate;
import com.xbts.system.domain.dto.InsertMaterialToTemplateDto;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 模板Service接口
 *
 * @author xbts
 * @date 2023-08-21
 */
public interface ISeiTemplateService extends IService<SeiTemplate> {

    /**
     * 模板表
     *
     * @param
     * @return 模板表单
     */
    List<SeiTemplate> selectTemplateList(SeiTemplate seiTemplate);

    /**
     * 修改模板
     *
     * @param seiTemplate 模板
     * @return 结果
     */
    boolean updateTemplate(SeiTemplate seiTemplate);

    /**
     * 新增模板类型
     *
     * @param name 模板类型名称
     * @return 结果
     */
    boolean insertTemplateType(String name);

    /**
     * 新增模板
     *
     * @param seiTemplate 父级id，模板类型
     * @return 结果
     */
    boolean insertTemplate(SeiTemplate seiTemplate);

    /**
     * 删除模板
     *
     * @param templateId 模板Id
     * @return 结果
     */
    boolean deleteTemplate(String templateId);

    /**
     * 批量删除模板
     *
     * @param ids 模板Id集合
     * @return 结果
     */
    boolean batchDeleteTemplate(List<String> ids);

    /**
     * 查询模板详情
     *
     * @param templateId 模板主键
     * @return 素材
     */
    SeiTemplate selectSeiByTemplateId(String templateId);


    /**
     * 导出word文档
     *
     * @param seiTemplate 模板主键
     * @return 素材
     */
    void outPutWord(HttpServletRequest request, HttpServletResponse response, String seiTemplate);

    /**
     * 保存素材到模板
     */
    boolean insertMaterialToTemplate(InsertMaterialToTemplateDto dto);

    /**
     * 保存为新模板
     */
    int insertNewTemplate(InsertMaterialToTemplateDto dto);

    /**
     * 导入文档
     */
    String importData(MultipartFile file);
}
